home *** CD-ROM | disk | FTP | other *** search
- .prime
- Print "Enter the upper limit: "
- upper = Edit(80) : If upper < 1 Then End
-
- If upper > 8
- mx = Int(upper / 2) + 1
- Else
- mx = upper
- EndIf
-
- Dim pn(mx) : num=1 : pn(0) = 1 : pn(1) = 2
-
- per = Int(upper / 10) : If per = 0 Then per = 1
-
- Format "000"
-
- ResetTimer
-
- NPrint "" : Print "Calculating 000%"+Chr$(8)
-
- For t = 3 To upper
-
- perc + 1
- If perc > per
- perc = 0
- Print Chr$(8)+Chr$(8)+Chr$(8) : Print t / upper * 100
- EndIf
-
- noprime = 0 : tt = 0
- Repeat
- tt+1 : frc=Frac(t/pn(tt))
- Until frc = 0 OR pn(tt) > Sqr(t)
- If frc <> 0 Then num + 1 : pn(num) = t
-
- Next
-
- t=Ticks : Print Chr$(8)+Chr$(8)+Chr$(8) : Print "100%"
-
- Format ""
-
- NPrint "" : NPrint ""
- NPrint "Prime numbers in the range 1 to ",upper," are:"
-
- For a = 0 To num
- If pn(a) <= upper Then NPrint pn(a)
- Next a
-
- NPrint "Finished, in ",t / 50," seconds. (Press Enter to Quit)"
- NPrint ""
-
- Goto prime